import { editUserInfoApi, getUserInfoApi } from "../../../api/user";

// pkgUser/pages/profile/profile.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 个人信息
    userInfo: {},
    // 弹出层变量
    showName: false,
    showPicker: false,
    showPicker2: false,
    isOne: false,
    isTwo: false,
    isThree: false,
    isFour: false,
    username: '',
    mobile: '',
    address: '',
    notes: '',
    columns: [
      { sex: 0, gender: "男" },
      { sex: 1, gender: "女" },
    ],
    currentDate: new Date().getTime()
  },

  // 点击弹框
  onName(ev) {
    this.setData({ isOne: false, isTwo: false, isThree: false, isFour: false, })
    this.setData({ showName: true })
    // console.log(ev.mark.type);
    const { username, mobile, address, notes } = this.data.userInfo
    if (ev.mark.type === "1") {
      this.setData({ isOne: true, username })
    }
    if (ev.mark.type === "2") {
      this.setData({ isTwo: true, mobile })
    }
    if (ev.mark.type === "3") {
      this.setData({ isThree: true, address })
    }
    if (ev.mark.type === "4") {
      this.setData({ isFour: true, notes })
    }
  },
  // 点击弹窗取消
  onCancel() {
    this.setData({ showName: false })
  },
  // 点击确定
  async onSubmit() {
    const { isOne, isTwo, isThree, isFour, username, mobile, address, notes } = this.data
    if (isOne) {
      this.setData({ 'userInfo.username': username })
    }
    if (isTwo) {
      this.setData({ 'userInfo.mobile': mobile, })
    }
    if (isThree) {
      this.setData({ 'userInfo.address': address })
    }
    if (isFour) {
      this.setData({ 'userInfo.notes': notes })
    }
    await editUserInfoApi(this.data.userInfo)
    wx.showToast({
      title: '修改成功',
    })
    this.setData({ showName: false })
  },
  // 性别弹出层
  onSex() {
    this.setData({ showPicker: true })
  },
  // 性别和出生年月弹出层点击取消
  onClose() {
    this.setData({ showPicker: false, showPicker2: false })
  },
  // 性别弹出层点击确定
  async getCate(ev) {
    // console.log(ev.detail.value);
    this.setData({ 'userInfo.sex': ev.detail.value.sex })
    await editUserInfoApi(this.data.userInfo)
    wx.showToast({
      title: '修改成功',
    })
    this.setData({ showPicker: false })
  },
  // 出生年月弹出框
  onBirthday() {
    this.setData({ showPicker2: true })
  },
  // 出生年月点击确定、
async onDate(ev) {
    console.log(ev.detail);
    this.setData({'userInfo.birthday':new Date(ev.detail).getFullYear()+'-'+(new Date(ev.detail).getMonth()+1)+'-'+new Date(ev.detail).getDate()})
    await editUserInfoApi(this.data.userInfo)
    wx.showToast({
      title: '修改成功',
    })
    this.setData({ showPicker2: false })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    const app = getApp()
    if (app.userInfo) {
      this.setData({ userInfo: app.userInfo })
    } else {
      this.getUserInfo()
    }
    // console.log(this.data.userInfo);
  },
  //   获取用户信息
  async getUserInfo() {
    const { data: { userInfo } } = await getUserInfoApi()
    // console.log(data);
    this.setData({ userInfo })
    getApp().userInfo = userInfo
  },
  // 修改图片
  async editImg() {
    const { tempFiles } = await wx.chooseMedia({
      count: 1,
      mediaType: 'image',
      sourceType: ['album', 'camera']
    })
    // console.log(tempFiles);
    wx.uploadFile({
      url: wx.http.baseURL + '/common/upload?type=images',
      filePath: tempFiles[0].tempFilePath,
      name: 'file',
      header: {
        Token: wx.getStorageSync('token')
      },
      success: async (res) => {
        // 上传完成需要更新 fileList
        // console.log(res);
        const data = JSON.parse(res.data);
        if (data.errno !== 0) return wx.tps("上传图片到服务器失败");
        // console.log(data);
        this.setData({
          'userInfo.icon': data.data.savePath,
        });
        await editUserInfoApi(this.data.userInfo)
        wx.showToast({
          title: '修改成功',
        })
      },
      fail: (err) => {
        console.log(err);
      },
    });
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})